package com.yonyou.gmmc.service.information.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.marketing.common.dto.information.ActivityInfoDto;
import org.marketing.common.dto.information.ActivityItemsDto;
import org.marketing.common.dto.information.ActivityRecordDto;
import org.marketing.common.dto.information.ReadingDto;
import org.marketing.common.dto.leads.ThreadcarDto;

import com.yonyou.gmmc.service.information.annotation.OracleDb;
import com.yonyou.gmmc.service.information.model.TtBlackList;
import com.yonyou.gmmc.service.information.model.TtMaintenanceRecord;
import com.yonyou.gmmc.service.information.entity.NewsActivityPO;

import tk.mybatis.mapper.common.Mapper;

@OracleDb
public interface TtMaintenanceRecordMapper extends Mapper<TtMaintenanceRecord> {
    
    /**
    * 根据ID查询新闻资讯
    * @author QianKun
    * @date 2017年3月10日
    * @param naiId
    * @return
    */
    public NewsActivityPO queryNewsActivityById(@Param("naiId") Integer naiId,@Param("type") Integer type);
    
    /**
    * 保存留资信息
    * @author QianKun
    * @date 2017年3月10日
    * @param capitalInformationDto
    */
    public int saveCapitalInfor(@Param("threadcarDto") ThreadcarDto threadcarDto);
    
    public String selectCapitalInfor(ThreadcarDto threadcarDto);
    

    /**
    * 查询活动填写项目
    * @author QianKun
    * @date 2017年3月10日
    * @param naiId
    * @return
    */
    public List<ActivityItemsDto> queryActivityItems(@Param("naiId") Long naiId);
    

    /**
    * 新增报名人信息
    * @author QianKun
    * @date 2017年3月11日
    * @param activityRecordPo
    */    
    public int insertPotentialUser(@Param("activityRecordDto") ActivityRecordDto activityRecordDto);

    /**
    * 更新阅读数(+1)
    * @author QianKun
    * @date 2017年3月13日
    * @param readingDto
    */
    public long updateReadingNum(ReadingDto readingDto);

    /**
    * 已报名信息列表查询
    * @author QianKun
    * @date 2017年3月15日
    * @param openId
    * @return
    */
    public List<ActivityRecordDto> queryActivityList(@Param("userId") String userId);

    /**
    * 已报名信息详情查询
    * @author QianKun
    * @date 2017年3月15日
    * @param applyId
    * @return
    */
    public List<ActivityRecordDto> queryActivityMemberInfo(@Param("applyId") Long applyId);
    

    /**
    * 我能看到的资讯查询 
    * @author QianKun
    * @date 2017年3月16日
    * @param openId
    * @return
    */
    public List<ActivityInfoDto> queryMyNews(@Param("userId") String userId,@Param("dealerCode") String dealerCode,@Param("activityType") Long activityType);

    /**
    * 我能看到的活动查询
    * @author QianKun 
    * @date 2017年3月16日
    * @param openId
    * @param activityType
    * @return
    */
    public List<ActivityInfoDto> queryMyActivity(@Param("userId") String userId,@Param("dealerCode") String dealerCode);
    public List<Map<String,Object>> selectUserAndCar(@Param("userId") Integer userId);
    public String selectOpenId(@Param("userId") String userId);
    
    public String selectPointsChange();

    // 根据IP来查找记录
    List<TtBlackList> findByIp(String ip);

    // 添加记录
    int addBlackList(@Param("blackList") TtBlackList blackList);

}